package com.集合.Collection___.Set_;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

@SuppressWarnings("all")
public class Set基本介绍和常用方法 {
    /**1.Set接口的实现类是无序的(添加和取出的顺序不一致),没有索引；
     * 2.不允许重复元素(重复对象)，所以最多包含一个null；如果重复了不会添加到set集合；返回false;
     * 3.和List接口一样 Set接口也是Collection的子接口，因此，常用方法和Collection一样；
     * 4.Set接口的遍历方式：
     *   4.1迭代器 iterator
     *   4.2增强for循环（底层还是迭代器）
     *   不能用普通for循环，因为没有索引；
     *5.set集合输出是无序的但每次输出是固定的；即：输入和输出不一定一致，但第一次输出和第二次输出是一样的顺序；
     */
    public static void main(String[] args) {
        Set hashSet = new HashSet();
        hashSet.add("hsp-1");
        hashSet.add("jeak-2");
        hashSet.add("monster-3");
        hashSet.add("balala-4");
        hashSet.add("mike-5");
        hashSet.add("alex-6");
        hashSet.add("alex-6");//重复了，不会添加进去；返回false;
        hashSet.add("alex-6");//重复了，不会添加进去；返回false;
        hashSet.add(null);
        hashSet.add(null);//重复了，不会添加进去；返回false;
        System.out.println("\n  hashSet = " + hashSet+" \n ");
//        hashSet = [alex-6, null, monster-3, jeak-2, balala-4, mike-5, hsp-1],输出的跟输入的不一致，且重复的不添加进去；

        hashSet.remove(null);//删除指定元素；
        System.out.println("\n  hashSet = " + hashSet+" \n ");



        System.out.println("=================iterator迭代器遍历方式===================");
        Iterator iterator = hashSet.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }

        System.out.println("=================增强for循环的遍历方式===================");
        iterator = hashSet.iterator();
        for (Object o : hashSet) {
            System.out.println(o);
        }

    }
}


